package com.fanshuai2.niuke.monitor;

import java.util.Scanner;

/**
 * MP3 Player因为屏幕较小，显示歌曲列表的时候每屏只能显示几首歌曲，用户要通过上下键才能浏览所有的歌曲。为了简化处理，假设每屏只能显示4首歌曲，光标初始的位置为第1首歌。
 *
 *
 * 现在要实现通过上下键控制光标移动来浏览歌曲列表，控制逻辑如下：
 *
 * 歌曲总数<=4的时候，不需要翻页，只是挪动光标位置。
 *
 * 光标在第一首歌曲上时，按Up键光标挪到最后一首歌曲；光标在最后一首歌曲时，按Down键光标挪到第一首歌曲。
 *
 * 2. 歌曲总数大于4的时候（以一共有10首歌为例）：
 *
 *
 * 特殊翻页：屏幕显示的是第一页（即显示第1 – 4首）时，光标在第一首歌曲上，用户按Up键后，屏幕要显示最后一页（即显示第7-10首歌），同时光标放到最后一首歌上。同样的，屏幕显示最后一页时，光标在最后一首歌曲上，用户按Down键，屏幕要显示第一页，光标挪到第一首歌上
 *
 * 输入描述：
 * 输入说明：
 * 1 输入歌曲数量
 * 2 输入命令 U或者D
 *
 * 输出描述：
 * 输出说明
 * 1 输出当前列表
 * 2 输出当前选中歌曲
 */
public class SongsShow {
    static class Songs {
        int pos = 1;
        int songNum;
        int[] songList = new int[4];

        public Songs(int songNum) {
            this.songNum = songNum;
            for (int i = 0; i < 4; i++) {
                songList[i] = i + 1;
            }
        }
        public String songsList() {
            StringBuilder b = new StringBuilder();

            int num = 4;
            if (songNum < 4) {
                num = songNum;
            }
            for (int i = 0; i < num; i++) {
                b.append(songList[i]);
                if (i < num - 1) {
                    b.append(" ");
                }
            }
            return b.toString();
        }
        public int getPosSong() {
            return songList[pos - 1];
        }
    }

    static Songs getSongs(String command, int n) {
        Songs songs = new Songs(n);
        for (char c : command.toCharArray()) {
            if (songs.songNum <= 4) {
                if (c == 'U') {
                    if (songs.pos == 1) {
                        songs.pos = songs.songNum;
                    } else {
                        songs.pos--;
                    }
                }
                if (c == 'D') {
                    if (songs.pos == songs.songNum) {
                        songs.pos = 1;
                    } else {
                        songs.pos++;
                    }
                }
            } else {
                if (c == 'U') {
                    if (songs.pos == 1) {
                        if (songs.songList[0] == 1) {
                            songs.pos = 4;
                            for (int i = 0; i < songs.songList.length; i++) {
                                songs.songList[i] += n - 4;
                            }
                        } else {
                            for (int i = 0; i < songs.songList.length; i++) {
                                songs.songList[i] -= 1;
                            }
                        }
                    } else {
                        songs.pos--;
                    }
                }
                if (c == 'D') {
                    if (songs.pos == 4) {
                        if (songs.songList[3] == songs.songNum) {
                            songs.pos = 1;
                            for (int i = 0; i < songs.songList.length; i++) {
                                songs.songList[i] -= (n - 4);
                            }
                        } else {
                            for (int i = 0; i < songs.songList.length; i++) {
                                songs.songList[i] += 1;
                            }
                        }
                    } else {
                        songs.pos++;
                    }
                }
            }
        }

        return songs;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) {
            int n = in.nextInt();
            String command = in.next();
            Songs songs = getSongs(command, n);

            System.out.println(songs.songsList());
            System.out.println(songs.getPosSong());
        }
    }
}
